package controller;

import javax.swing.JOptionPane;

import model.ContaDAO;

/**
*
* @author Juliane
*/
public class ContaInvestimento extends Conta {
    public double montmin;
    public double depmin;
    
    public ContaInvestimento(){
    }
    public ContaInvestimento(int nconta, double depini, double saldo,double montmin, double depmin) {
        super.setNconta(nconta);
        super.setDepini(depini);
        super.setSaldo(saldo);        
        this.montmin = montmin;
        this.depmin = depmin;
    }
   
    public double getMontmin() {
        return montmin;
    }

    public double getDepmin() {
        return depmin;
    }

    public void setMontmin(double montmin) {
        this.montmin = montmin;
    }

    public void setDepmin(double depmin) {
        this.depmin = depmin;
    }

    @Override
    public boolean saca(double valor) throws Exception{
        double novosaldo = super.getSaldo() - valor;                
        if(novosaldo >= this.montmin){
            if (super.saca(valor))
                return true;
            else
                //mostrar mensagem de erro (valor negativo)
            	JOptionPane.showMessageDialog(null, "Valor de saque inválido.","Atenção!", JOptionPane.ERROR_MESSAGE);
                return false;
        } else {
        	// mostrar mensagem de novo saldo < montante minimo
        	JOptionPane.showMessageDialog(null, "Novo saldo menor que montante mínimo.","Saque não efetuado!", JOptionPane.ERROR_MESSAGE);
        	return false;
        }        
    }
       
    public boolean deposita(double valor) throws Exception{
        if(valor >= this.depmin){
            if (super.deposita(valor))
                return true;
        }else{
            if(valor < 0){
                //mostrar mensagem de erro (valor negativo)
            	JOptionPane.showMessageDialog(null, "Valor de depósito inválido.","Atenção!", JOptionPane.ERROR_MESSAGE);
            	return false;
            }else{
                //mostra mensagem de erro (valor do deposito < que valor do deposito minimo)
                JOptionPane.showMessageDialog(null, "Valor do depósito menor que o depósito mínimo permitido.","Atenção!", JOptionPane.ERROR_MESSAGE);
                return false; 
            }
        }
        return false;
    }
    
    public void remunera()throws Exception{
        super.setSaldo(super.getSaldo() * 1.02);
        
        //adicionar o dao pra salvar alteracao no banco
        ContaDAO contDAO = new ContaDAO();
        contDAO.atualizaConta(this);
    } 
       
}
